package com.wuxinwudai.android.beans;

import org.json.JSONException;
import org.json.JSONObject;

/**
 * JRResult 泛型类用于返回数据实体
 * @author 吾心无待 于2016年06月02日
 */
public class JRResult<T> extends JsonRequestResult{
    protected T item;
    /**
     * 获取数据项
     * @return 数据项
     */
    public T getItem(){
        return item;
    }

    /**
     * 从 JSONObject 对象生产 JSONRequestResult 对象
     * @param obj JSONObject 对象
     * @return 返回 JsonRequestResult 对象
     * @throws JSONException
     */
    public static <T> JRResult<T> create(JSONObject obj) throws JSONException{
        JRResult<T> jrr = new JRResult<>();
        jrr.setMessage(obj.getString("message"));
        jrr.setOk(obj.getBoolean("ok"));
        jrr.setStatusCode(obj.getString("statusCode"));
        jrr.setSource(obj);
        jrr.setTime(obj.getLong("time"));
        jrr.item = jrr.getJRParser().detailFrom(obj.getJSONObject("item"));
        return jrr;
    }

    /**
     * 要求重写该方法，获取 JRParser
     * @return 返回 JRParser
     */
    public JRParser<T> getJRParser(){
        return null;
    }
}
